package com.paireach.bw.http;

/**
 * 运单接口中心
 */
public interface WayBillInterface {
    /**
     * 根据手机号获取运单号，如果没有运单号，该接口返回的运单号是0
     *
     * @param phoneNumber 手机号
     */
//    void getOrderNumber(String phoneNumber);

    /**
     * 根据运单号获取当前单据的状态，返回运单状态字符串
     *
     * @param orderNumber 运单号
     */
//    void getOrderHandlingState(String orderNumber);


    void loadAllOrder(String phoneNumber);


    void loadFirstAvailableOrder(String phoneNumber);

    /**
     * 根据运单号获取该运单的详细货物
     *
     * @param orderNo 运单号
     */
    void getOrderGoodsDetail(String phoneNumber, String orderNo);

    void queryOrderJoinList(String phoneNumber, String orderCode);


    /**
     * 拒绝接受运单
     *
     * @param phoneNumber
     * @param orderNo
     */
    void driverRefuseOrder(String phoneNumber, String orderNo);


    /**
     * 拒绝签到，不管是装货签到还是收货签到都是这个
     *
     * @param orderNo 运单号
     */
//    void refuseSign(String phoneNumber, String orderNo, double lat, double lng);

    /**
     * 确定提货
     *
     * @param phoneNumber
     * @param orderNo
     */
    void confirmStart(String phoneNumber, String orderNo);

    /**
     * 确定收货
     *
     * @param phoneNumber
     * @param orderNo
     */
    void confirmEnd(String phoneNumber, String orderNo, double lat, double lng);


    //------------------------------------------------------------------------------------------------

    /**
     * 司机接单
     *
     * @param orderNo 订单号
     */
    void driverAcceptOrder(String phoneNumber, String orderNo, String orderCodes);

    /**
     * 发送地理围栏警报
     */
    void saveFenceAlarmInfo(String monitored_person, int action, long time,
                            int fence_id, String fence_name, double lng, double lat, int coord_type, int radius,
                            double pre_lng, double pre_lat, int pre_coord_type, long pre_time, int pre_radius);


    /**
     * 提交安全检查
     */
    void commitSafeCheck(String phoneNumber, boolean isCheck1, boolean isCheck2, boolean isCheck3, boolean isCheck4, boolean isCheck5, boolean isCheck6, boolean isCheck7,
                         boolean isCheck8, boolean isCheck9, boolean isCheck10);

    /**
     * 提交服务评价
     */
    void commitServiceEvaluation(String phoneNumber, String orderNo, int factoryTe, int factorySa, int loadTs);

    /**
     * 待接收运单
     *
     * @param phoneNumber
     */
    void canAcceptOrderList(String phoneNumber);

    /**
     * 运送中运单
     *
     * @param phoneNumber
     */
    void onTheRoadOrderList(String phoneNumber);

    /**
     * 已完成fragment
     */
    void completeOrderList(String phoneNumber);

    /**
     * 获取负载单 详情
     */
    void getOrderCodeDetail(String phoneNumber, String orderCode);

    /**
     * 签到，不管是装货签到还是收货签到都是这个
     */
    void sign(String phoneNumber, String orderNo, String number, String type);

    /**
     * 签到，不管是装货签到还是收货签到都是这个
     */
    void sign(String phoneNumber, String name, String orderNo, String number, String type);


    /**
     * 入厂
     */
    void intoFactory(String phoneNumber, String orderNo);

    /**
     * 出厂
     */
    void outFactory(String phoneNumber, String orderNo);

    /**
     * 收货入厂
     */
    void intoEndFactory(String phoneNumber, String orderNo, String shpmNum, String flag);

    /**
     * 收货出厂
     */
    void outEndFactory(String phoneNumber, String orderCode, String shpmNum, String flag);

    /**
     * 回空确认
     */
    void backEmptyConfirm(String phoneNumber, String name, String oldOrderCode, String oldShpmNum, String orderCode, String nums, String types);

    /**
     * 获取首页数据
     */
    void loadHomeOrder(String phone);

    /**
     * 是否有回瓶
     */
    void getIsHaveEmpty(String phoneNumber, String orderCode);

    /**
     *
     */
    void getHaveEmptyInfo(String orderCode, String tel, String id);


    /**
     * 拒绝签到
     */
    void rejectSign(String orderCode, String shpmNum);


    /**
     * 常规-->装货工厂：签到+退回
     */
    void orderReturn(String orderCode);

    /**
     * 首页：是否已经提交安全检查
     */
    void isSafeCheckCommit(String phone);

    /**
     * 常规出厂后的回空 取消回空单
     */
    void emptyCancel(String driverTel,String oldOrderCode, String oldShpmNum);

    /**
     * 获取异常签收原因类型,BW_REJECT_REASON
     */
    void rejectReason(String type);

    /**
     * 异常列表
     */
    void getExceptionList(String drivelTel);
}
